# Copyright 2025 DeepMind Technologies Limited.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Classic RL task implemented as an Android app.
load("@rules_android//rules:rules.bzl", "android_binary")
load("@rules_kotlin//kotlin:android.bzl", "kt_android_library")

package(
    default_visibility = [":catch_packages"],
)

package_group(
    name = "catch_packages",
    packages = [
        "//java/com/google/androidenv/catch/...",
        "//javatests/com/google/androidenv/catch/...",
    ],
)

licenses(["notice"])

android_binary(
    name = "app",
    manifest = "AndroidManifest.xml",
    multidex = "native",
    deps = [":MainActivity"],
)

kt_android_library(
    name = "GameLogic",
    srcs = ["GameLogic.kt"],
    deps = [
        "//java/com/google/androidenv/catch/sprite:Background",
        "//java/com/google/androidenv/catch/sprite:Ball",
        "//java/com/google/androidenv/catch/sprite:LineSegment",
        "//java/com/google/androidenv/catch/sprite:Paddle",
    ],
)

kt_android_library(
    name = "GameLogicThread",
    srcs = ["GameLogicThread.kt"],
    deps = [
        ":GameLogic",
    ],
)

kt_android_library(
    name = "MainActivity",
    srcs = ["MainActivity.kt"],
    manifest = "AndroidManifest.xml",
    resource_files = glob(["res/**"]),
    deps = [
        ":GameLogic",
        ":GameLogicThread",
        ":RenderThread",
        "//java/com/google/androidenv/catch/sprite:Background",
        "//java/com/google/androidenv/catch/sprite:Ball",
        "//java/com/google/androidenv/catch/sprite:Paddle",
    ],
)

kt_android_library(
    name = "RenderThread",
    srcs = ["RenderThread.kt"],
    deps = [
        ":GameLogic",
    ],
)
